findAllBy*

用途

使用domain类属性来动态创建Grails查询方法表达式,返回所有domain类实例

举例

假定有domain类 Book 如下:

class Book {
   Long id
   Long version
   String title
   Date releaseDate
   String author
}

下面一些可能的查询方法:

def results = Book.findAllByTitle("The Shining", [max:10, sort:"title", order:"desc", offset:100] )
results = Book.findAllByTitleAndAuthor("The Sum of All Fears", "Tom Clancy")
results = Book.findAllByReleaseDateBetween(firstDate, new Date())
results = Book.findAllByReleaseDateGreaterThanEquals(firstDate)
results = Book.findAllByTitleLike("%Hobbit%")
results = Book.findAllByTitleIlike("%Hobbit%") // (since 0.5) - ignorecase
results = Book.findAllByTitleNotEqual("Harry Potter")
results = Book.findAllByReleaseDateIsNull()
results = Book.findAllByReleaseDateIsNotNull()

描述

GORM 支持Dynamic Finders概念,findAllBy* 方法按照给定方法表达式查出所有结果。

参数:

分页和排序参数做为动态方法的最后参数:

def results = Book.findAllByTitle(
		"The Shining", [max:10, sort:"title",
			 order:"desc", offset:100] )

在各个动态方法中使用如下操作名:

上面操作名可以被认为关键字,当使用属性名查询domain类运行到问题。更多信息看参考用户手册的 dynamic finders 章节。